home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d7 / laser.arc / NETBIOS.H < prev    next >
Text File  |  1992-01-14  |  6KB  |  126 lines

  1. /* NETBIOS.H - include file for NetBIOS calls and definitions         */
  2. /* - written by Paul McGinnis, AST Research, Inc. - Data Comm Support */
  3. /* - Dept. 430 - September 1988.                                      */
  4.  
  5.  
  6. typedef unsigned char byte;
  7. typedef unsigned int word;
  8.  
  9.  
  10. /* Structure of Network Control Block (NCB)                           */
  11. typedef struct
  12. {
  13.   byte NCB_COMMAND;        /* command                            */
  14.   byte NCB_RETCODE;        /* function return code               */
  15.   byte NCB_LSN;            /* local session number               */
  16.   byte NCB_NUM;            /* number of network name             */
  17.   word NCB_BUFFER_OFFSET;    /* offset of message buffer           */
  18.   word NCB_BUFFER_SEGMENT;    /* segment of message buffer          */
  19.   word NCB_LENGTH;        /* length of message buffer             */
  20.   byte NCB_CALLNAME[16];    /* name of session user is talking to */
  21.   byte NCB_NAME[16];        /* user's network name                */
  22.   byte NCB_RTO;            /* receive time-out in 500 ms. incrs. */
  23.   byte NCB_STO;            /* send time-out - 500 ms. increments */
  24.   word NCB_POST_OFFSET;        /* offset of "no-wait" interrupt call */
  25.   word NCB_POST_SEGMENT;    /* segment of "no-wait" interrupt     */
  26.   byte NCB_LANA_NUM;        /* adapter number (must be 0 or 1)    */
  27.   byte NCB_CMD_CPLT;        /* command completion status          */
  28.   byte NCB_RESERVE[14];        /* Reserved area for Token-Ring       */
  29. } NCB;
  30.  
  31.  
  32. /* NetBIOS error return codes - returned in NCB_RETCODE               */
  33. #define ERR_success 0        /* NetBIOS command completed normally */
  34. #define ERR_bad_buffer_length 1 /* Bad send or status buffer size     */
  35. #define ERR_invalid 3        /* invalid NetBIOS command            */
  36. #define ERR_timeout 5           /* Command time-out has expired       */
  37. #define ERR_buffer_too_small 6  /* Receive buffer not big enough      */
  38. #define ERR_bad_session_num 8   /* Bad value in NCB_LSN               */
  39. #define ERR_no_RAM 9            /* LAN card doesn't have enough memory*/
  40. #define ERR_session_closed 0xa  /* This session is closed             */
  41. #define ERR_cancel 0xb          /* Command has been closed            */
  42. #define ERR_dup_local_name 0xd  /* Name already exists for this PC    */
  43. #define ERR_name_table_full 0xe /* Local name table is full           */
  44. #define ERR_active_session 0xf  /* Can't delete name - used in session*/
  45. #define ERR_sess_table_full 0x11 /* Local session table is full       */
  46. #define ERR_no_listen 0x12      /* Remote PC not listening for call   */
  47. #define ERR_bad_name_num 0x13   /* Bad value in NCB_NUM field         */
  48. #define ERR_no_answer 0x14      /* No answer to CALL or no such remote*/
  49. #define ERR_no_local_name 0x15  /* No such name in local name table   */
  50. #define ERR_duplicate_name 0x16 /* Name is in use elsewhere on net    */
  51. #define ERR_bad_delete 0x17     /* Name incorrectly deleted           */
  52. #define ERR_abnormal_end 0x18   /* Session aborted abnormally         */
  53. #define ERR_name_error 0x19     /* 2 or more identical names in use!  */
  54. #define ERR_bad_packet 0x1a     /* Bad NetBIOS packet on network      */
  55. #define ERR_card_busy 0x21      /* network card is busy               */
  56. #define ERR_too_many_cmds 0x22    /* Too many NetBIOS commands queued   */
  57. #define ERR_bad_card_num 0x23   /* bad NCB_LANA_NUM - must be 0 or 1  */
  58. #define ERR_cancel_done 0x24    /* command finished while cancelling  */
  59. #define ERR_no_cancel 0x26    /* Command can't be cancelled         */
  60. #define ERR_busy 0xff        /* Still processing command           */
  61.  
  62.  
  63. /* NetBIOS functions list - "WAIT" calls wait until command completes */
  64. /* while the others jump to the routine in NCB_POST when the NetBIOS  */
  65. /* command completes and does an interrupt.                           */
  66. #define RESET 0x32        /* Reset adapter card and tables      */
  67. #define CANCEL 0x35        /* Cancel command. NCB_BUFFER = cmd.  */
  68.  
  69. #define STATUS 0xb3        /* status information for adapter     */
  70. #define STATUS_WAIT 0x33
  71.  
  72. #define TRACE 0xf9        /* Token-Ring protocol trace          */
  73. #define TRACE_WAIT 0x79
  74.  
  75. #define UNLINK 0x70        /* unlink from IBM Remote Program     */
  76.  
  77. #define ADD_NAME 0xb0        /* Add name to name table             */
  78. #define ADD_NAME_WAIT 0x30
  79.  
  80. #define ADD_GROUP_NAME 0xb6    /* Add group name to name table       */
  81. #define ADD_GROUP_NAME_WAIT 0x36
  82.  
  83. #define DELETE_NAME 0xb1    /* Delete name from name table        */
  84. #define DELETE_NAME_WAIT 0x31
  85.  
  86. #define CALL 0x90        /* Start session with NCB_NAME name   */
  87. #define CALL_WAIT 0x10
  88.  
  89. #define LISTEN 0x91             /* Listen for call                    */
  90. #define LISTEN_WAIT 0x11
  91.  
  92. #define HANG_UP 0x92        /* End session with NCB_NAME name     */
  93. #define HANG_UP_WAIT 0x12
  94.  
  95. #define SEND 0x94        /* Send data via NCB_LSN              */
  96. #define SEND_WAIT 0x14
  97.  
  98. #define SEND_NO_ACK 0xf1    /* Send data without waiting for ACK  */
  99. #define SEND_NO_ACK_WAIT 0x71
  100.  
  101. #define CHAIN_SEND 0x97        /* Send multiple data buffers         */
  102. #define CHAIN_SEND_WAIT 0x17
  103.  
  104. #define CHAIN_SEND_NO_ACK 0xf2  /* Send multiple buffers without ACK  */
  105. #define CHAIN_SEND_NO_ACK_WAIT 0x72
  106.  
  107. #define RECEIVE 0x95        /* Receive data from a session          */
  108. #define RECEIVE_WAIT 0x15
  109.  
  110. #define RECEIVE_ANY 0x96    /* Receive data from any session      */
  111. #define RECEIVE_ANY_WAIT 0x16
  112.  
  113. #define SESSION_STATUS 0xb4    /* status of all sessions for name    */
  114. #define SESSION_STATUS_WAIT 0x34
  115.  
  116. #define SEND_DATAGRAM 0xa0    /* send un-ACKed message              */
  117. #define SEND_DATAGRAM_WAIT 0x20
  118.  
  119. #define SEND_BCST_DATAGRAM 0xa2 /* send broadcast message             */
  120. #define SEND_BCST_DATAGRAM_WAIT 0x22
  121.  
  122. #define RECEIVE_DATAGRAM 0xa1    /* receive un-ACKed message           */
  123. #define RECEIVE_DATAGRAM_WAIT 0x21
  124.  
  125. #define RECEIVE_BCST_DATAGRAM 0xa3 /* receive broadcast message       */
  126. #define RECEIVE_BCST_DATAGRAM_WAIT 0x23